﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

namespace LaughingDog.Components
{
    /// <summary>
    /// Any component that is to be drawn should implement this interface.
    /// </summary>
    public interface IDrawableComponent
    {
        /// <summary>
        /// Gets or sets whether this Component should be hidden even if it is in view of the camera.
        /// </summary>
        Boolean Visible { get; set; }

        /// <summary>
        /// Gets or sets whether this Component is in the view of the Camera. Should not be used manually.
        /// </summary>
        Boolean InCameraView { get; set; }      

        /// <summary>
        /// Draws this Component
        /// </summary>
        /// <param name="spriteBatch">The SpriteBatch object to use for the drawing.</param>
        void Draw(SpriteBatch spriteBatch);
    }
}
